/*
 * MyPreferences.java
 *
 * Copyright 2011 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 05/05/2009, 11:23:38 AM
 */
package com.ufps.cuatro.util.opciones;

import java.util.prefs.Preferences;

/**
 * <i><b>MyPreferences:</b></i> Implementa el Soporte de Almacenamiento
 * de Preferencias y configuraciones de usuario para la personalización de la
 * Aplicación.
 * 
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 05/05/2009
 * @see Properties
 */
public class MyPreferences implements ConstPreferences{
    
    private Preferences objPreferencias;

    /**
     * 
     */
    public MyPreferences() {
        init();
    }
    
    private void init(){
        objPreferencias = Preferences.userRoot().node(this.getClass().getName());                        
    }
    
    /**
     * 
     * @param ID
     * @param value
     */
    public void addOpcion(String ID, String value){
        objPreferencias.put(ID, value);
    }
    
    /**
     * 
     * @param ID
     * @param value
     */
    public void addOpcion(String ID, int value){
        objPreferencias.putInt(ID, value);
    }
    
    /**
     * 
     * @param ID
     * @param value
     */
    public void addOpcion(String ID, long value){
        objPreferencias.putLong(ID, value);
    }
    
    /**
     * 
     * @param ID
     * @param value
     */
    public void addOpcion(String ID, float value){
        objPreferencias.putFloat(ID, value);
    }
    
    /**
     * 
     * @param ID
     * @param value
     */
    public void addOpcion(String ID, double value){
        objPreferencias.putDouble(ID, value);
    }
    
    /**
     * 
     * @param ID
     * @param value
     */
    public void updateOpcion(String ID, boolean value){
        objPreferencias.putBoolean(ID, value);
    }
    
    /**
     * 
     * @param ID
     * @return
     */
    public int getInt(String ID){
        return objPreferencias.getInt(ID, 0);
    }
    
    /**
     * 
     * @param ID
     * @param Default
     * @return
     */
    public int getInt(String ID, int Default){
        return objPreferencias.getInt(ID, Default);
    }
    
    /**
     * 
     * @param ID
     * @return
     */
    public long getLong(String ID){
        return objPreferencias.getLong(ID, 0);
    }
    
    /**
     * 
     * @param ID
     * @param Default
     * @return
     */
    public long getLong(String ID, long Default){
        return objPreferencias.getLong(ID, Default);
    }
    
    /**
     * 
     * @param ID
     * @return
     */
    public float getFloat(String ID){
        return objPreferencias.getFloat(ID, 0);
    }
    
    /**
     * 
     * @param ID
     * @param Default
     * @return
     */
    public float getFloat(String ID, float Default){
        return objPreferencias.getFloat(ID, Default);
    }
    
    /**
     * 
     * @param ID
     * @return
     */
    public double getDouble(String ID){
        return objPreferencias.getDouble(ID, 0);
    }
    
    /**
     * 
     * @param ID
     * @param Default
     * @return
     */
    public double getDouble(String ID, double Default){
        return objPreferencias.getDouble(ID, Default);
    }
    
    /**
     * 
     * @param ID
     * @return
     */
    public boolean getBoolean(String ID){
        return objPreferencias.getBoolean(ID, false);
    }
    
    /**
     * 
     * @param ID
     * @param Default
     * @return
     */
    public boolean getBoolean(String ID, boolean Default){
        return objPreferencias.getBoolean(ID, Default);
    }
    
    /**
     * 
     * @param ID
     * @return
     */
    public String getString(String ID){
        return objPreferencias.get(ID, "");
    }
    
    /**
     * 
     * @param ID
     * @param Default
     * @return
     */
    public String getString(String ID, String Default){
        return objPreferencias.get(ID, Default);
    }

    public Preferences getObjPreferencias() {
        return objPreferencias;
    }
    
    
}
